package org.dllwh.utils.google.response;

import org.dllwh.common.exception.HttpClientException;

import java.io.File;
import java.io.OutputStream;

/**
 * 把今天最好的表现当作明天最新的起点．．～
 * <p>
 * Today the best performance as tomorrow the newest starter!
 *
 * @ClassName HttpResponseHelper
 * @Description TODO(这里用一句话描述这个类的作用)
 * @Date 2025-06-11 10:07
 * @版本 V 1.0.1
 * @since JDK 17
 */
public final class HttpResponseHelper {
    /**
     * 将响应结果直接转为字符串
     *
     * @return 响应结果字符串
     * @throws Exception 如果服务器返回非200则抛出此异常
     */
    public static String asString() throws Exception {
        return null;
    }

    /**
     * 将响应结果转为JavaBean对象
     *
     * @param targetClass 目标类型
     * @param <E>         泛型类型
     * @return JavaBean对象
     * @throws Exception 如果服务器返回非200则抛出此异常
     */
    public <E> E asBean(Class<E> targetClass) throws Exception {
        return null;
    }

    // /**
    //  * 将响应结果转为JavaBean，该方法能够提取到泛型信息
    //  */
    // public <E> E asBean(TypeRef<E> typeRef) {
    //     return null;
    // }

    /**
     * 将响应结果转为二进制内容，这是数据在网络请求的原始数据
     *
     * @return 字节数组
     * @throws Exception 如果服务器返回非200则抛出此异常
     */
    public byte[] asByteData() throws Exception {
        return null;
    }

    /**
     * 将响应结果转为文件存储，当远程是文件时该方法非常有用
     *
     * @param saveFile 目标保存文件,非空
     */
    public void asFile(File saveFile) {

    }

    /**
     * 直接将响应结果输出到另外一个流中,并不会主动关闭输出流
     *  * @param outputStream 输出流,非空
     */
    public void asStream(OutputStream outputStream) {

    }
}
